package multithread;

public class BankThreadTest {

    public static void main(String[] args) {
        Customer c1 = new Customer();
        Customer c2 = new Customer();
        c1.start();
        c2.start();

    }

}

class Mbank{
    private static int sum = 2000;



    /**
     * 要加synchronized互斥锁，保证线程完整执行完这个方法，
     * 而不是在线程sleep的时候，方法体执行到一半，执行其他的线程去了。
     * @param k
     */
    public static synchronized void take(int k){

        int temp = sum;
        temp-=k;        //变量temp保存的是每个线程处理的值。
        try{
            Thread.sleep((int)(Math.random()*1000));
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        sum = temp;
        System.out.println("sum="+sum);

    }
}

class Customer extends Thread{


    public void run(){
        for(int i=0;i<4;i++){
            Mbank.take(100);
        }
    }

}